Technical Field
This disclosure relates to computer security. More specifically, this disclosure relates to verifying the integrity of a computing platform.
Related Art
Consider a computer code which conforms in every respect to the design intentions motivating its development; call such a code uncontaminated. One path adopted by adversaries wishing to modify or interfere with the intended operation of the uncontaminated code is to introduce surreptitiously either alternative or additional computer instructions into the execution space of the code which subvert or alter the function or outcome of the code's execution. It is therefore desirable to provide means by which the integrity or intactness of the uncontaminated code may be verified so as to provide assurance that its operation and results conform to the outcomes intended by its design.
One common method employed to achieve this is to measure the code against a known valid criterion; an example would be the well-known use of Trusted Platform Module (TPM) hardware for code measurement. One of the main uses of TPM is to assure the integrity of a platform. Specifically, the Basic Input/Output System (BIOS) and the operating system (OS) of a computing platform use TPM to assure the integrity of the computing platform.
TPM based solutions for verifying the integrity of a computing platform have at least two serious drawbacks. First, these solutions require the presence of TPM (or equivalent) hardware in the computing platform. Second, these solutions require a correct implementation of the TPM-based security architecture within the computing platform. Unfortunately, this means that billions of existing systems are excluded from the ability to measure securely the integrity of their computer codes, because, lacking correctly implemented, or any, hardware security features, they are subject to penetration by a malicious adversarial software entity such as a malicious hypervisor.